package com.siwuxie095.functional.chapter4th.example9th;

/**
 * @author Jiajing Li
 * @date 2020-10-18 18:52:57
 */
public class Main {

    /**
     * 权衡
     *
     * 在接口中定义方法的诸多变化引发了一系列问题，既然可用代码主体定义方法，那 Java 8 中的接口还是旧有版本中界定的
     * 代码吗？现在的接口提供了某种形式上的多继承功能，然而多继承在以前饱受诟病，Java 因此舍弃了该语言特性，这也正是
     * Java 在易用性方面优于 C++ 的原因之一。
     *
     * 语言特性的利弊也在不断演化。很多人认为多继承的问题在于对象状态的继承，而不是代码块的继承，默认方法避免了状态的
     * 继承，也因此避免了 C++ 中多继承的最大缺点。
     *
     * 突破语言上的局限性吸引着无数优秀的程序员不断尝试。现在已有一些博客文章，阐述在 Java 8 中实现完全的多继承做出
     * 的尝试，包括状态的继承和默认方法。尝试突破 Java 8 这些有意为之的语言限制时，却往往又掉进 C++ 的旧有陷阱之中。
     *
     * 接口和抽象类之间还是存在明显的区别。接口允许多继承，却没有成员变量；抽象类可以继承成员变量，却不能多继承。在对
     * 问题域建模时，需要根据具体情况进行权衡，而在以前的 Java 中可能并不需要这样。
     */
    public static void main(String[] args) {

    }

}
